﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace V82.ОбщиеМодули
{
	public partial class ПроцедурыПроизвольныхОтчетов
	{

		public object ЭтоТиповойОтчет(/*МетаданныеОтчета*/)
		{
			//ЕстьРеквизит = (МетаданныеОтчета.Реквизиты.Найти("ЗначенияНастроекПанелиПользователя") <> Неопределено);
			return null;
		}
		//

		public object ЭтоУниверсальныйОтчет(/*МетаданныеОтчета*/)
		{
			//ЕстьРеквизит = (МетаданныеОтчета.Реквизиты.Найти("УниверсальныйОтчет") <> Неопределено);
			return null;
		}
		//

		public object ЭтоПроизвольныйОтчет(/*ОтчетОбъект*/)
		{
			//Результат = (ТипЗнч(ОтчетОбъект) = Тип("ОтчетОбъект.ПроизвольныйОтчет"));
			return null;
		}

		public void ВосстановитьНастройкиОтчета(/*ОтчетОбъект, ТипИсточникаДанных, СохраненнаяНастройка*/)
		{
			if(true/*ТипИсточникаДанных = Перечисления.ТипыИсточниковДанных.УниверсальныйОтчет*/)
			{
				if(true/*ЗначениеЗаполнено(СохраненнаяНастройка)*/)
				{
					//ОтчетОбъект.ВосстановитьНастройкиИзСтруктуры(СохраненнаяНастройка);
				}
			}
		}
		//

		public object ПолучитьОтчетИзИсточникаДанных(/*СтруктураИсточникаДанных, ВосстановитьНастройки = Ложь*/)
		{
			//ОтчетОбъект = Неопределено;
			if(true/*СтруктураИсточникаДанных.ТипИсточникаДанных = Перечисления.ТипыИсточниковДанных.УниверсальныйОтчет 
		ИЛИ СтруктураИсточникаДанных.ТипИсточникаДанных = Перечисления.ТипыИсточниковДанных.ТиповойОтчет*/)
			{
				if(true/*ЗначениеЗаполнено(СтруктураИсточникаДанных.ИмяИсточника)*/)
				{
					//ОтчетОбъект = Отчеты[СтруктураИсточникаДанных.ИмяИсточника].Создать();
				}
			}
			if(true/*ВосстановитьНастройки И ОтчетОбъект <> Неопределено*/)
			{
				//СохраненнаяНастройка = Неопределено;
				if(true/*СтруктураИсточникаДанных.ТипИсточникаДанных = Перечисления.ТипыИсточниковДанных.УниверсальныйОтчет*/)
				{
					if(true/*НЕ ПустаяСтрока(СтруктураИсточникаДанных.НаименованиеНастройкиОтчета)*/)
					{
						//СтруктураНастройки = Новый Структура;
						//СтруктураНастройки.Вставить("Пользователь", СтруктураИсточникаДанных.ПользовательНастройкиОтчета);
						//СтруктураНастройки.Вставить("ИмяОбъекта", "ОтчетОбъект." + СтруктураИсточникаДанных.ИмяИсточника);
						//СтруктураНастройки.Вставить("НаименованиеНастройки", СтруктураИсточникаДанных.НаименованиеНастройкиОтчета);
						if(true/*УниверсальныеМеханизмы.ПолучитьНастройку(СтруктураНастройки)*/)
						{
							//СохраненнаяНастройка = СтруктураНастройки.СохраненнаяНастройка;
						}
					}
				}
				//ВосстановитьНастройкиОтчета(ОтчетОбъект, СтруктураИсточникаДанных.ТипИсточникаДанных, СохраненнаяНастройка);
			}
			return null;
		}
		//

		public object ПолучитьСписокПолейИсточника(/*СтруктураИсточникаДанных*/)
		{
			//СписокПолейИсточника = Новый ТаблицаЗначений;
			//СписокПолейИсточника.Колонки.Добавить("Поле");
			//СписокПолейИсточника.Колонки.Добавить("Заголовок");
			//СписокПолейИсточника.Колонки.Добавить("ТипЗначения");
			//СписокПолейИсточника.Колонки.Добавить("ВыражениеПоляИтога");
			//СписокПолейИсточника.Колонки.Добавить("ЭтоРесурс", Новый ОписаниеТипов("Булево"));
			if(true/*СтруктураИсточникаДанных.ТипИсточникаДанных = Перечисления.ТипыИсточниковДанных.УниверсальныйОтчет*/)
			{
				//ОтчетОбъект = ПолучитьОтчетИзИсточникаДанных(СтруктураИсточникаДанных, Истина);
				if(true/*ОтчетОбъект <> Неопределено*/)
				{
					//ЗаполнитьСписокПолейУниверсальногоОтчета(СписокПолейИсточника, ОтчетОбъект);
				}
			}
			return null;
		}
		//

		public object ПолучитьСписокПараметровИсточника(/*СтруктураИсточникаДанных*/)
		{
			//СписокПараметровИсточника = Новый ТаблицаЗначений;
			//СписокПараметровИсточника.Колонки.Добавить("Имя");
			//СписокПараметровИсточника.Колонки.Добавить("Заголовок", Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(200)));
			//СписокПараметровИсточника.Колонки.Добавить("ОграничениеИспользования", Новый ОписаниеТипов("Булево"));
			//СписокПараметровИсточника.Колонки.Добавить("Выражение", Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(0)));
			//СписокПараметровИсточника.Колонки.Добавить("ТипЗначения");
			if(true/*СтруктураИсточникаДанных.ТипИсточникаДанных = Перечисления.ТипыИсточниковДанных.УниверсальныйОтчет*/)
			{
				//ОтчетОбъект = ПолучитьОтчетИзИсточникаДанных(СтруктураИсточникаДанных, Истина);
				if(true/*ОтчетОбъект <> Неопределено*/)
				{
					//ЗаполнитьСписокПараметровУниверсальногоОтчета(СписокПараметровИсточника, ОтчетОбъект);
				}
			}
			return null;
		}
		//

		public object НайтиНаборДанныхСхемы(/*ИмяНабораДанных, НаборыДанных, ВладелецНабора = Неопределено*/)
		{
			if(true/*ВладелецНабора = Неопределено*/)
			{
				//ВладелецНабора = НаборыДанных;
			}
			return null;
		}
		//

		public void УдалитьНаборДанных(/*НаборДанных, ВладелецНабора = Неопределено*/)
		{
			if(true/*ВладелецНабора <> Неопределено*/)
			{
				if(true/*ТипЗнч(ВладелецНабора) = Тип("НаборДанныхОбъединениеСхемыКомпоновкиДанных")*/)
				{
					//ВладелецНабора.Элементы.Удалить(НаборДанных);
				}
			}
		}
		//

		public object СкопироватьНаборДанных(/*Приемник, Источник, ИсточникиДанных = Неопределено, ПараметрыИсточниковДанных = Неопределено*/)
		{
			//ТипИсточника = ТипЗнч(Источник);
			//ИсточникКопия = Приемник.Добавить(ТипИсточника);
			//ЗаполнитьЗначенияСвойств(ИсточникКопия, Источник);
			if(true/*ТипИсточника = Тип("НаборДанныхОбъектСхемыКомпоновкиДанных") И ИсточникиДанных <> Неопределено*/)
			{
				//ИсточникНабора = ИсточникиДанных.Найти(Источник.Имя, "НаборДанных");
				if(true/*ИсточникНабора <> Неопределено*/)
				{
					//НовыйИсточник = ДобавитьИсточникДанных(ИсточникиДанных);
					//НовыйИсточник.НаборДанных = ИсточникКопия.Имя;
					//НовыйИсточник.ТипИсточникаДанных = ИсточникНабора.ТипИсточникаДанных;
					//НовыйИсточник.ИмяИсточника = ИсточникНабора.ИмяИсточника;
					//НовыйИсточник.СохраненнаяНастройка = ИсточникНабора.СохраненнаяНастройка;
					//НовыйИсточник.НаименованиеНастройкиОтчета = ИсточникНабора.НаименованиеНастройкиОтчета;
					//НовыйИсточник.ПользовательНастройкиОтчета = ИсточникНабора.ПользовательНастройкиОтчета;
				}
				//ПараметрыИсточника = ПараметрыИсточниковДанных.НайтиСтроки(Новый Структура("КлючИсточника", ИсточникНабора.КлючИсточника));
			}
			return null;
		}
		//

		public object ПолучитьТипЗначенияПоля(/*ПолеКомпоновкиДанных*/)
		{
			//ТипЗначенияПоля = Неопределено;
			if(true/*ТипЗначенияПоля = Неопределено*/)
			{
				//ТипЗначенияПоля = ПолеКомпоновкиДанных.ТипЗначения;
			}
			return null;
		}
		//

		public void ВставитьЗначениеЭлементаФормы(/*ЭлементыФормы, Структура, Имя*/)
		{
			//Ключ = СтрЗаменить(Имя, "АналитическиеОтборы", "");
			//Ключ = СтрЗаменить(Ключ, "НастройкиПрогноза", "");
			if(true/*ЭлементыФормы.Найти(Имя) <> Неопределено*/)
			{
				//Структура.Вставить(Ключ, ЭлементыФормы[Имя].Значение);
			}
		}

		public void ЗаполнитьЗначенияАналитическихОтборов(/*ЗначенияНастроек, ЭлементыФормы*/)
		{
			/*//АналитическиеОтборы
*/
			//ЗначенияАналитическихОтборов = Новый Структура;
			//ВставитьЗначениеЭлементаФормы(ЭлементыФормы, ЗначенияАналитическихОтборов, "АналитическиеОтборыКоличествоТоп");
			//ВставитьЗначениеЭлементаФормы(ЭлементыФормы, ЗначенияАналитическихОтборов, "АналитическиеОтборыПроцентТоп");
			//ВставитьЗначениеЭлементаФормы(ЭлементыФормы, ЗначенияАналитическихОтборов, "АналитическиеОтборыПолеТоп");
			//ВставитьЗначениеЭлементаФормы(ЭлементыФормы, ЗначенияАналитическихОтборов, "АналитическиеОтборыПроцентПорог");
			//ВставитьЗначениеЭлементаФормы(ЭлементыФормы, ЗначенияАналитическихОтборов, "АналитическиеОтборыРесурсПорог");
			//ВставитьЗначениеЭлементаФормы(ЭлементыФормы, ЗначенияАналитическихОтборов, "АналитическиеОтборыПолеПорог");
			//ВставитьЗначениеЭлементаФормы(ЭлементыФормы, ЗначенияАналитическихОтборов, "АналитическиеОтборыПолеОтборТренд");
			//ВставитьЗначениеЭлементаФормы(ЭлементыФормы, ЗначенияАналитическихОтборов, "АналитическиеОтборыЗначениеОтборТренд");
			//ВставитьЗначениеЭлементаФормы(ЭлементыФормы, ЗначенияАналитическихОтборов, "АналитическиеОтборыПолеОтборСостояние");
			//ВставитьЗначениеЭлементаФормы(ЭлементыФормы, ЗначенияАналитическихОтборов, "АналитическиеОтборыЗначениеОтборСостояние");
			//ВставитьЗначениеЭлементаФормы(ЭлементыФормы, ЗначенияАналитическихОтборов, "АналитическиеОтборыПолеОтборABCКлассификация");
			//ВставитьЗначениеЭлементаФормы(ЭлементыФормы, ЗначенияАналитическихОтборов, "АналитическиеОтборыЗначениеОтборABCКлассификация");
			//ВставитьЗначениеЭлементаФормы(ЭлементыФормы, ЗначенияАналитическихОтборов, "АналитическиеОтборыСкрытьНулевые");
			//ЗначенияНастроек.Вставить("АналитическиеОтборы", ЗначенияАналитическихОтборов);
		}
		//

		public void ЗаполнитьЗначенияАналитическихОтборовПоумолчанию(/*ЗначенияНастроек*/)
		{
			/*//АналитическиеОтборы
*/
			//ЗначенияАналитическихОтборов = Новый Структура;
			//ЗначенияАналитическихОтборов.Вставить("КоличествоТоп", Неопределено);
			//ЗначенияАналитическихОтборов.Вставить("ПроцентТоп", Неопределено);
			//ЗначенияАналитическихОтборов.Вставить("ПолеТоп", "");
			//ЗначенияАналитическихОтборов.Вставить("ПроцентПорог", 0);
			//ЗначенияАналитическихОтборов.Вставить("РесурсПорог", "");
			//ЗначенияАналитическихОтборов.Вставить("ПолеПорог", "");
			//ЗначенияАналитическихОтборов.Вставить("ПолеОтборТренд", "");
			//ЗначенияАналитическихОтборов.Вставить("ЗначениеОтборТренд", Неопределено);
			//ЗначенияАналитическихОтборов.Вставить("ПолеОтборСостояние", "");
			//ЗначенияАналитическихОтборов.Вставить("ЗначениеОтборСостояние", Неопределено);
			//ЗначенияАналитическихОтборов.Вставить("ПолеОтборABCКлассификация", "");
			//ЗначенияАналитическихОтборов.Вставить("ЗначениеОтборABCКлассификация", Неопределено);
			//ЗначенияАналитическихОтборов.Вставить("СкрытьНулевые", Неопределено);
			//ЗначенияНастроек.Вставить("АналитическиеОтборы", ЗначенияАналитическихОтборов);
		}
		//

		public object ПользовательМожетИзменятьПроизвольныйОтчет(/**/)
		{
			//Результат = РольДоступна("ПолныеПрава") ИЛИ РольДоступна("АдминистрированиеДополнительныхФормИОбработок");
			return null;
		}
		//
		////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ ДЛЯ РАБОТЫ С ИСТОЧНИКОМ "ОТЧЕТ" НА БАЗЕ УНИВЕРСАЛЬНОГО ОТЧЕТА

		public object ПолучитьДанныеОтчетаНаБазеУниверсальногоОтчета(/*ОтчетОбъект, СтруктураПараметров*/)
		{
			//ДанныеОтчета = Новый ТаблицаЗначений;
			if(true/*СтруктураПараметров.Свойство("ПараметрыОтчета")*/)
			{
			}
			//ЕстьГруппировки = (ОтчетОбъект.УниверсальныйОтчет.ПостроительОтчета.ИзмеренияСтроки.Количество() <> 0);
			//ЕстьДетальныеЗаписи = ОтчетОбъект.УниверсальныйОтчет.ВыводитьДетальныеЗаписи;
			/*// Создадим колонки
*/
			//Выборка = Результат.Выбрать();
			while(true/*Выборка.Следующий()*/)
			{
				//ТипЗаписиВыборки = Выборка.ТипЗаписи();
				/*// Берем данные, которые выводятся в отчет
*/
				if(true/*ТипЗаписиВыборки = ТипЗаписиЗапроса.ДетальнаяЗапись 
			И ЕстьДетальныеЗаписи 
			
			ИЛИ ТипЗаписиВыборки = ТипЗаписиЗапроса.ИтогПоГруппировке 
			И ЕстьГруппировки 
			
			ИЛИ ТипЗаписиВыборки = ТипЗаписиЗапроса.ОбщийИтог
			И НЕ ЕстьДетальныеЗаписи И НЕ ЕстьГруппировки*/)
				{
					//НоваяСтрокаДанных = ДанныеОтчета.Добавить();
					//ЗаполнитьЗначенияСвойств(НоваяСтрокаДанных, Выборка);
					if(true/*НЕ ЕстьДетальныеЗаписи И НЕ ЕстьГруппировки*/)
					{
					}
				}
			}
			return null;
		}
		//

		public void ЗаполнитьСписокПолейУниверсальногоОтчета(/*СписокВыбранныхПолейОтчета, ОтчетОбъект*/)
		{
			//Показатели = ОтчетОбъект.УниверсальныйОтчет.Показатели;
		}
		//

		public void ЗаполнитьСписокПараметровУниверсальногоОтчета(/*СписокПараметровОтчета, ОтчетОбъект*/)
		{
			//ПараметрыПостроителя = ОтчетОбъект.УниверсальныйОтчет.ПостроительОтчета.Параметры;
			/*// Возможные значения: // (-1) - не выбирать период, 0 - произвольный период, 1 - на дату, 2 - неделя, 3 - декада, 4 - месяц, 5 - квартал, 6 - полугодие, 7 - год
*/
			//РежимВводаПериода = ОтчетОбъект.УниверсальныйОтчет.мРежимВводаПериода;
			if(true/*РежимВводаПериода = 1*/)
			{
				//ПараметрОтчета = СписокПараметровОтчета.Добавить();
				//ПараметрОтчета.Имя = "ДатаКон";
				//ПараметрОтчета.Заголовок = "На дату";
				//ПараметрОтчета.ТипЗначения = Новый ОписаниеТипов("Дата",,, Новый КвалификаторыДаты(ЧастиДаты.Дата));
			}
		}
		//
		////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ ДЛЯ РАБОТЫ С ИСТОЧНИКОМ "ОТЧЕТ" НА БАЗЕ ТИПОВОГО ОТЧЕТА

		public void ЗаполнитьПользовательскиеНастройкиПоКомпоновщику(/*ОтчетОбъект, ЗначенияПараметровМакетаКомпоновкиДанных, ПараметрыИсточника, ЗначенияПараметровИсточника = Неопределено*/)
		{
			if(true/*ОтчетОбъект.ЗначенияНастроекПанелиПользователя = Неопределено*/)
			{
			}
			//НастройкиКомпоновкиДанныхОтчета = ОтчетОбъект.КомпоновщикНастроек.Настройки;
			//ПараметрНачалоПериода = Неопределено;
			//ПараметрКонецПериода = Неопределено;
			//ПараметрПериод = Неопределено;
			//ЗначенияНастроекПанелиПользователя = ОтчетОбъект.ЗначенияНастроекПанелиПользователя.Получить();
			//ЕстьДинамическиеПараметры = ЗначенияНастроекПанелиПользователя.Свойство("ДинамическиеПараметры") <> Неопределено;
			if(true/*ПараметрНачалоПериода <> Неопределено И ПараметрКонецПериода <> Неопределено*/)
			{
				//СтандартныйПериод = Новый СтандартныйПериод;
				//СтандартныйПериод.ДатаНачала = ПараметрНачалоПериода;
				//СтандартныйПериод.ДатаОкончания = ПараметрКонецПериода;
				//ЗначенияНастроекПанелиПользователя.Вставить("СтандартныйПериод", СтандартныйПериод);
			}
			//ЗначенияНастроекПанелиПользователя.Вставить("НастройкиКомпоновщика", ОтчетОбъект.КомпоновщикНастроек.ПолучитьНастройки());
			//ОтчетОбъект.ЗначенияНастроекПанелиПользователя = Новый ХранилищеЗначения(ЗначенияНастроекПанелиПользователя);
		}
		//

		public object ПолучитьДанныеОтчетаНаБазеТиповогоОтчета(/*ОтчетОбъект*/)
		{
			//ДанныеОтчета = Новый ТаблицаЗначений;
			//НастройкиКомпоновкиДанныхОтчета = ОтчетОбъект.КомпоновщикНастроек.Настройки;
			//ВертикальноеРасположениеИтогов = НастройкиКомпоновкиДанныхОтчета.ПараметрыВывода.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("VerticalOverallPlacement"));
			//ВертикальноеРасположениеИтогов.Использование = Истина;
			//ВертикальноеРасположениеИтогов.Значение = РасположениеИтоговКомпоновкиДанных.Нет;
			return null;
		}
		//

		public void ДобавитьКоллекциюПолейВыбораОтчета(/*СписокПолейОтчета, ДоступныеПоляВыбора, Элементы*/)
		{
		}
		//

		public void ДобавитьКоллекциюГруппировокОтчета(/*СписокПолейОтчета, ДоступныеПоляГруппировки, Структура*/)
		{
		}
		//

		public void ЗаполнитьСписокПолейТиповогоОтчета(/*СписокВыбранныхПолейОтчета, ОтчетОбъект*/)
		{
			//НастройкиКомпоновки = ОтчетОбъект.КомпоновщикНастроек.Настройки;
			//СхемаКомпоновкиДанных = ТиповыеОтчеты.ПолучитьСхемуКомпоновкиОбъекта(ОтчетОбъект);
			//ДобавитьКоллекциюПолейВыбораОтчета(СписокВыбранныхПолейОтчета, НастройкиКомпоновки.Выбор.ДоступныеПоляВыбора, НастройкиКомпоновки.Выбор.Элементы);
			//ДобавитьКоллекциюГруппировокОтчета(СписокВыбранныхПолейОтчета, НастройкиКомпоновки.ДоступныеПоляГруппировок, НастройкиКомпоновки.Структура);
		}
		//

		public void ЗаполнитьСписокПараметровТиповогоОтчета(/*СписокПараметровОтчета, ОтчетОбъект*/)
		{
			//СхемаКомпоновкиДанных = ТиповыеОтчеты.ПолучитьСхемуКомпоновкиОбъекта(ОтчетОбъект);
			//ПараметрыСКД = СхемаКомпоновкиДанных.Параметры;
		}
		//
		////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ ДЛЯ РАБОТЫ С ИСТОЧНИКОМ "ВНЕШНЯЯ ОБРАБОТКА"

		public object СоздатьВнешнююОбработку(/*ВнешняяОбработка*/)
		{
			//ОбработкаОбъект = Неопределено;
			//ИмяФайла = ПолучитьИмяВременногоФайла();
			return null;
		}
		//

		public object ПолучитьДанныеВнешнейОбработки(/*ВнешняяОбработка, ПараметрыИсточникаДанных, НастройкиКомпоновкиДанных*/)
		{
			//ДанныеОбработки = Неопределено;
			return null;
		}
		//

		public void ЗаполнитьСписокПолейОбработки(/*СписокПолейИсточника, ВнешняяОбработка*/)
		{
			if(true/*НЕ ЗначениеЗаполнено(ВнешняяОбработка)*/)
			{
			}
		}
		//

		public void ЗаполнитьСписокПараметровОбработки(/*СписокПараметровИсточника, ВнешняяОбработка*/)
		{
			if(true/*НЕ ЗначениеЗаполнено(ВнешняяОбработка)*/)
			{
			}
		}
		//
		////////////////////////////////////////////////////////////////////////////////
		// ПРОЧИЕ ПРОЦЕДУРЫ

		public object ПолучитьСтруктуруИсточникаДанных(/*ЗначенияСвойств*/)
		{
			//СтруктураИсточникаДанных = Новый Структура("ТипИсточникаДанных,ИмяИсточника,СохраненнаяНастройка,НаименованиеНастройкиОтчета,ПользовательНастройкиОтчета");
			//ЗаполнитьЗначенияСвойств(СтруктураИсточникаДанных, ЗначенияСвойств);
			return null;
		}
		//

		public object ДобавитьИсточникДанных(/*ИсточникиДанных*/)
		{
			//НовыйКлюч = 0;
			//НовыйИсточникДанных = ИсточникиДанных.Добавить();
			//НовыйИсточникДанных.КлючИсточника = НовыйКлюч;
			return null;
		}
		//

		public object ПолучитьЗначениеПараметраКомпоновщика(/*ПараметрыКомпоновщика, Имя*/)
		{
			//ЗначениеПараметраКомпоновки = ПараметрыКомпоновщика.Найти(Имя);
			if(true/*ЗначениеПараметраКомпоновки = Неопределено*/)
			{
			}
			//ТипЗначенияПараметра = ТипЗнч(ЗначениеПараметраКомпоновки.Значение);
			if(true/*ТипЗначенияПараметра = Тип("СтандартнаяДатаНачала")*/)
			{
				//ЗначениеПараметра = ЗначениеПараметраКомпоновки.Значение.Дата;
			}
			return null;
		}
		//

		public object ПолучитьПараметрыИсточника(/*ПараметрыИсточниковДанных, КлючИсточника*/)
		{
			//СписокСтрок = ПараметрыИсточниковДанных.НайтиСтроки(Новый Структура("КлючИсточника", КлючИсточника));
			return null;
		}
		//

		public object ПолучитьДанныеИсточников(/*ИсточникиДанных, ПараметрыИсточниковДанных, НастройкиКомпоновкиДанных, СхемаОтчета*/)
		{
			//ВнешниеНаборыДанных = Новый Структура;
			//КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
			//ЗначенияПараметровМакетаКомпоновкиДанных = МакетКомпоновки.ЗначенияПараметров;
			return null;
		}
		//

		public object ПолучитьКартинкуПроизвольногоОтчета(/*ДанныеОтчета*/)
		{
			if(true/*ДанныеОтчета.ВидПроизвольногоОтчета = Перечисления.ВидыПроизвольныхОтчетов.ПоказательМонитораЭффективности*/)
			{
				//Картинка = БиблиотекаКартинок.ПоказательМонитораЭффективности;
			}
			return null;
		}
		//

		public void УстановитьОформлениеСтрокСписка(/*ОформленияСтрок*/)
		{
			//МассивОтчетов = Новый Массив;
			//Запрос = Новый Запрос;
			/*ТекстЗапроса = 
		"ВЫБРАТЬ
		|	ПроизвольныеОтчеты.Ссылка КАК Ссылка,
		|	ПроизвольныеОтчеты.ВидПроизвольногоОтчета
		|ИЗ
		|	Справочник.ПроизвольныеОтчеты КАК ПроизвольныеОтчеты
		|ГДЕ
		|	ПроизвольныеОтчеты.Ссылка В(&МассивОтчетов)
		|	И (НЕ ПроизвольныеОтчеты.ПометкаУдаления)";*/
			//Запрос.Текст = ТекстЗапроса;
			//Запрос.УстановитьПараметр("МассивОтчетов", МассивОтчетов);
			//Результат = Запрос.Выполнить().Выгрузить();
		}
		//
		////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ ДЛЯ АНАЛИТИЧЕСКИХ ВОЗМОЖНОСТЕЙ

		public object ПолучитьНачалоПериода(/*ИсходнаяДата, Периодичность, СмещениеПериода*/)
		{
			if(true/*Периодичность = Перечисления.Периодичность.День*/)
			{
				//НачалоПериода = НачалоДня(ИсходнаяДата + СмещениеПериода*86400);
			}
			return null;
		}
		//

		public object ПолучитьКонецПериода(/*ИсходнаяДата, Периодичность, СмещениеПериода*/)
		{
			if(true/*Периодичность = Перечисления.Периодичность.День*/)
			{
				//КонецПериода = ИсходнаяДата + СмещениеПериода*86400;
			}
			if(true/*СмещениеПериода <> 0 
		И КонецДня(ИсходнаяДата) = КонецМесяца(ИсходнаяДата) 
		И (Периодичность = Перечисления.Периодичность.День
			ИЛИ Периодичность = Перечисления.Периодичность.Месяц
			ИЛИ Периодичность = Перечисления.Периодичность.Квартал
			ИЛИ Периодичность = Перечисления.Периодичность.Полугодие
			ИЛИ Периодичность = Перечисления.Периодичность.Год)*/)
			{
				//КонецПериода = КонецМесяца(КонецПериода);
			}
			//КонецПериода = КонецДня(КонецПериода);
			return null;
		}
		//

		public object ПолучитьПериодФормирования(/*ИсходнаяДата, Периодичность, СмещениеПериода = 0*/)
		{
			//НачалоПериода = ПолучитьНачалоПериода(ИсходнаяДата, Периодичность, СмещениеПериода);
			//КонецПериода  = ПолучитьКонецПериода (ИсходнаяДата, Периодичность, СмещениеПериода);
			//ПериодФормирования = Новый Структура("НачалоПериода,КонецПериода", НачалоПериода, КонецПериода);
			return null;
		}
		//
		// Добавляет в таблицу значений колонку с ABC классификацией поля по показателю

		public void ДобавитьABCКлассификацию(/*Таблица, ИмяНовойКолонки, Показатель, Поле, Процент1, Процент2, Процент3, Приставка = ""*/)
		{
			//Таблица.Колонки.Добавить(ИмяНовойКолонки, Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(200)));
			//КопияТаблицы = Таблица.Скопировать(, "" + Поле + "," + Показатель);
			//КопияТаблицы.Свернуть(Поле, Показатель);
			//КопияТаблицы.Сортировать(Показатель + " убыв,");
			//ИтогПоКолонке = КопияТаблицы.Итог(Показатель);
			//Сумма = 0;
		}

		public void ВычислитьПериодФормированияПоказателяМонитораЭффективности(/*ПараметрыДанных*/)
		{
			//ПараметрПериод = ПараметрыДанных.Элементы.Найти("Период");
			//ПараметрСмещениеПериода = ПараметрыДанных.Элементы.Найти("СмещениеПериода");
			if(true/*ПараметрСмещениеПериода = Неопределено*/)
			{
				/*// Показатель-прогноз
*/
				//ПараметрСмещениеПериода = ПараметрыДанных.Элементы.Найти("Горизонт");
			}
			//ПараметрПериодичность = ПараметрыДанных.Элементы.Найти("Периодичность");
			if(true/*ПараметрПериод <> Неопределено 
		И ПараметрСмещениеПериода <> Неопределено 
		И ПараметрПериодичность <> Неопределено*/)
			{
				/*// Текущий период
*/
				//ПериодФормирования = Неопределено;
				//ЗначениеПараметра = ПараметрыДанных.Элементы.Найти("НачалоТекущегоПериода");
				if(true/*ЗначениеПараметра <> Неопределено*/)
				{
					//ПериодФормирования = ПолучитьПериодФормирования(ПараметрПериод.Значение, ПараметрПериодичность.Значение, 0);
					//ЗначениеПараметра.Значение = ПериодФормирования.НачалоПериода;
					//ЗначениеПараметра.Использование = Истина;
				}
				//ЗначениеПараметра = ПараметрыДанных.Элементы.Найти("КонецТекущегоПериода");
				if(true/*ЗначениеПараметра <> Неопределено*/)
				{
					if(true/*ПериодФормирования = Неопределено*/)
					{
						//ПериодФормирования = ПолучитьПериодФормирования(ПараметрПериод.Значение, ПараметрПериодичность.Значение, 0);
					}
					//ЗначениеПараметра.Значение = ПериодФормирования.КонецПериода;
					//ЗначениеПараметра.Использование = Истина;
				}
				/*// Предыдущий период
*/
				//ПериодФормирования = Неопределено;
				//ЗначениеПараметра = ПараметрыДанных.Элементы.Найти("НачалоПредыдущегоПериода");
				if(true/*ЗначениеПараметра <> Неопределено*/)
				{
					//ПериодФормирования = ПолучитьПериодФормирования(ПараметрПериод.Значение, ПараметрПериодичность.Значение, ПараметрСмещениеПериода.Значение);
					//ЗначениеПараметра.Значение = ПериодФормирования.НачалоПериода;
					//ЗначениеПараметра.Использование = Истина;
				}
				//ЗначениеПараметра = ПараметрыДанных.Элементы.Найти("КонецПредыдущегоПериода");
				if(true/*ЗначениеПараметра <> Неопределено*/)
				{
					if(true/*ПериодФормирования = Неопределено*/)
					{
						//ПериодФормирования = ПолучитьПериодФормирования(ПараметрПериод.Значение, ПараметрПериодичность.Значение, ПараметрСмещениеПериода.Значение);
					}
					//ЗначениеПараметра.Значение = ПериодФормирования.КонецПериода;
					//ЗначениеПараметра.Использование = Истина;
				}
				/*// Планируемый период
*/
				//ПериодФормирования = Неопределено;
				//ЗначениеПараметра = ПараметрыДанных.Элементы.Найти("НачалоПериодаПлан");
				if(true/*ЗначениеПараметра <> Неопределено*/)
				{
					//ПериодФормирования = ПолучитьПериодФормирования(ПараметрПериод.Значение, ПараметрПериодичность.Значение, ПараметрСмещениеПериода.Значение);
					//ЗначениеПараметра.Значение = ПериодФормирования.НачалоПериода;
					//ЗначениеПараметра.Использование = Истина;
				}
				//ЗначениеПараметра = ПараметрыДанных.Элементы.Найти("КонецПериодаПлан");
				if(true/*ЗначениеПараметра <> Неопределено*/)
				{
					if(true/*ПериодФормирования = Неопределено*/)
					{
						//ПериодФормирования = ПолучитьПериодФормирования(ПараметрПериод.Значение, ПараметрПериодичность.Значение, ПараметрСмещениеПериода.Значение);
					}
					//ЗначениеПараметра.Значение = ПериодФормирования.КонецПериода;
					//ЗначениеПараметра.Использование = Истина;
				}
			}
		}
		//
		// Дорабатывает компоновщик настроек перед выводом в отчет

		public void ДоработатьАналитическийОтчетПередВыводом(/*ОтчетОбъект, КомпоновщикНастроек, СхемаКомпоновкиДанных*/)
		{
			//ЗначенияНастроек = ТиповыеОтчеты.ПолучитьЗначенияНастроекПанелиПользователяОбъекта(ОтчетОбъект);
			/*// Отбор Пользовательского поля Тренд
*/
			if(true/*ЗначенияНастроек <> Неопределено 
		И НЕ ПустаяСтрока(ЗначенияНастроек.АналитическиеОтборы.ПолеОтборТренд)
		И ЗначениеЗаполнено(ЗначенияНастроек.АналитическиеОтборы.ЗначениеОтборТренд)*/)
			{
				//ПользовательскоеПоле = ТиповыеОтчеты.НайтиПользовательскоеПоле(КомпоновщикНастроек, Новый ПолеКомпоновкиДанных(ЗначенияНастроек.АналитическиеОтборы.ПолеОтборТренд));
				//ТиповыеОтчеты.СкопироватьЭлементы(КомпоновщикНастроек.Настройки.Отбор, Вариант.Отбор, , Ложь);
			}
			/*// Отбор Пользовательского поля Состояние
*/
			if(true/*ЗначенияНастроек <> Неопределено 
		И НЕ ПустаяСтрока(ЗначенияНастроек.АналитическиеОтборы.ПолеОтборСостояние) 
		И ЗначениеЗаполнено(ЗначенияНастроек.АналитическиеОтборы.ЗначениеОтборСостояние)*/)
			{
				//ПользовательскоеПоле = ТиповыеОтчеты.НайтиПользовательскоеПоле(КомпоновщикНастроек, Новый ПолеКомпоновкиДанных(ЗначенияНастроек.АналитическиеОтборы.ПолеОтборСостояние));
				//ТиповыеОтчеты.СкопироватьЭлементы(КомпоновщикНастроек.Настройки.Отбор, Вариант.Отбор, , Ложь);
			}
			/*// Отбор Пользовательского поля ABC классификация
*/
			if(true/*ЗначенияНастроек <> Неопределено 
		И НЕ ПустаяСтрока(ЗначенияНастроек.АналитическиеОтборы.ПолеОтборABCКлассификация) 
		И ЗначениеЗаполнено(ЗначенияНастроек.АналитическиеОтборы.ЗначениеОтборABCКлассификация)*/)
			{
				//ПользовательскоеПоле = ТиповыеОтчеты.НайтиПользовательскоеПоле(КомпоновщикНастроек, Новый ПолеКомпоновкиДанных(ЗначенияНастроек.АналитическиеОтборы.ПолеОтборABCКлассификация));
				//ТиповыеОтчеты.ДобавитьОтбор(КомпоновщикНастроек, ПользовательскоеПоле.ПутьКДанным, ЗначенияНастроек.АналитическиеОтборы.ЗначениеОтборABCКлассификация);
			}
			/*// Оформление индикаторов
*/
			/*// Вычислим и установим при необходимости период
*/
			if(true/*ОтчетОбъект.ВидПроизвольногоОтчета = Перечисления.ВидыПроизвольныхОтчетов.ПоказательМонитораЭффективности
		ИЛИ ОтчетОбъект.ВидПроизвольногоОтчета = Перечисления.ВидыПроизвольныхОтчетов.ПоказательМонитораЭффективностиПланФакт 
		ИЛИ ОтчетОбъект.ВидПроизвольногоОтчета = Перечисления.ВидыПроизвольныхОтчетов.ПоказательМонитораЭффективностиПрогноз*/)
			{
				//ВычислитьПериодФормированияПоказателяМонитораЭффективности(КомпоновщикНастроек.Настройки.ПараметрыДанных);
			}
		}
		//ДоработатьАналитическийОтчетПередВыводом

		public void ОставитьПервыеСтрокиТаблицы(/*Таблица, Знач Количество, Процент = Ложь*/)
		{
			//КоличествоСтрок = Таблица.Количество();
			/*// Переводим проценты в количество
*/
			if(true/*Процент*/)
			{
				//Количество = КоличествоСтрок * Количество / 100;
				//Количество = Цел(Количество) + ?(Количество = Цел(Количество), 0, 1);
			}
			/*// Если количество больше всех строк, то ничего не делаем
*/
			if(true/*Количество > КоличествоСтрок*/)
			{
			}
		}

		public object ЕстьABCКлассификация(/*КомпоновщикНастроек*/)
		{
			return null;
		}

		public object ВОбъектеОдинНаборДанных(/*Объект*/)
		{
			if(true/*Объект.НаборыДанных.Количество() = 1*/)
			{
				//ТипНабора = ТипЗнч(Объект.НаборыДанных[0]);
				/*Возврат ТипНабора = Тип("НаборДанныхЗапросСхемыКомпоновкиДанных")
			ИЛИ ТипНабора = Тип("НаборДанныхОбъектСхемыКомпоновкиДанных")
			ИЛИ ТипНабора = Тип("НаборДанныхОбъединениеСхемыКомпоновкиДанных");*/
			}
			return null;
		}

		public void ОбработатьТаблицуПоНаборуДанных(/*Источник, ПоляНабора*/)
		{
			//СоответствиеКолонок = Новый Соответствие;
		}
		//

		public object ПолучитьТаблицуРезультатПоМакетуКомпоновки(/*НаборыДанных, ЗначенияПараметров, ВнешниеНаборыДанных*/)
		{
			//ТаблицаРезультат = Неопределено;
			return null;
		}

		public object ОтработатьОпциюТоп(/*ЗначенияНастроек, ТЗ, КомпоновщикНастроек*/)
		{
			/*// Формируем строку упорядочивания
*/
			//СтрокаУпорядочивания = "";
			//СтрокаРесурсы = "";
			if(true/*ЗначенияНастроек.АналитическиеОтборы.ПолеТоп = "ДетальныеЗаписи"*/)
			{
				if(true/*Не ПустаяСтрока(СтрокаУпорядочивания)*/)
				{
					//ТЗ.Сортировать(СтрокаУпорядочивания);
				}
				//ОставитьПервыеСтрокиТаблицы(ТЗ, ЗначенияНастроек.АналитическиеОтборы.КоличествоТоп, ЗначенияНастроек.АналитическиеОтборы.ПроцентТоп);
			}
			return null;
		}

		public object ОтработатьОпциюПорог(/*ЗначенияНастроек, ТЗ, КомпоновщикНастроек*/)
		{
			//СтрокаПолеПорог = СтрЗаменить(ЗначенияНастроек.АналитическиеОтборы.ПолеПорог, ".", "");
			//СтрокаРесурсПорог = СтрЗаменить(ЗначенияНастроек.АналитическиеОтборы.РесурсПорог, ".", "");
			//КопияТЗ = ТЗ.Скопировать(,СтрокаПолеПорог + "," + СтрокаРесурсПорог);
			//КопияТЗ.Свернуть(СтрокаПолеПорог, СтрокаРесурсПорог);
			//Итог = КопияТЗ.Итог(СтрокаРесурсПорог);
			//Порог = Итог * ЗначенияНастроек.АналитическиеОтборы.ПроцентПорог / 100;
			//КоличествоСтрок = КопияТЗ.Количество();
			//КоличествоСтрок = ТЗ.Количество();
			//ДобавитьТипыВТипКолонкиТаблицыЗначений(ТЗ, СтрокаПолеПорог, "Строка");
			//ИтогПрочее  = Итог - ТЗ.Итог(СтрокаРесурсПорог);
			if(true/*ИтогПрочее > 0*/)
			{
				//НоваяСтрока = ТЗ.Добавить();
				//НоваяСтрока[СтрокаПолеПорог] = "Прочее";
				//НоваяСтрока[СтрокаРесурсПорог] = ИтогПрочее;
				if(true/*ТЗ.Колонки.Найти(СтрокаПолеПорог + "Представление") <> Неопределено*/)
				{
					//НоваяСтрока[СтрокаПолеПорог + "Представление"] = "Прочее";
				}
			}
			return null;
		}
		// Добавляет типы в ТипКолонки таблицы значений. При этом колонка перемещается в конец
		// Парам ДобавляемыеТипы - Массив типов или строка, содержащая типы через запятую

		public void ДобавитьТипыВТипКолонкиТаблицыЗначений(/*ТЗ, ИмяКолонки, ДобавляемыеТипы*/)
		{
			//СтараяКолонка = ТЗ.Колонки[ИмяКолонки];
			//ОписаниеТипов = СтараяКолонка.ТипЗначения;
			//ОписаниеТипов = Новый ОписаниеТипов(ОписаниеТипов, ДобавляемыеТипы);
			//НоваяКолонка = ТЗ.Колонки.Добавить(ИмяКолонки + "НоваяКолонка");
			//МассивЗначенийКолонки = ТЗ.ВыгрузитьКолонку(ИмяКолонки);
			//ТЗ.ЗагрузитьКолонку(МассивЗначенийКолонки, ИмяКолонки + "НоваяКолонка");
			//ТЗ.Колонки.Удалить(ИмяКолонки);
			//ТЗ.Колонки[ИмяКолонки + "НоваяКолонка"].Имя = ИмяКолонки;
		}

		public object ОтработатьОпциюСкрытьНулевые(/*ТЗ, КомпоновщикНастроек, СписокНовыхПолей*/)
		{
			//ТЗ.Колонки.Добавить("СуммаРесурсовПоМодулю", Новый ОписаниеТипов("Число"));
			//ВыбранныеПоля = ТиповыеОтчеты.ПолучитьВыбранныеПоля(КомпоновщикНастроек);
			//МассивКолонок = Новый Массив;
			/*// Заполняем дополнительную колонку
*/
			//СписокНовыхПолей.Добавить("СуммаРесурсовПоМодулю", "Сумма ресурсов по модулю");
			return null;
		}

		public object ДобавитьВТаблицуРезультатаABCКлассификацию(/*ТЗ, КомпоновщикНастроек, СписокНовыхПолей*/)
		{
			return null;
		}

		public object ПеренастроитьПользовательскиеПоляДляABCКлассификации(/*КомпоновщикНастроек*/)
		{
			return null;
		}

		public object УстановитьОтборНаНулевыеГруппировки(/*КомпоновщикНастроек*/)
		{
			//Группировки = ТиповыеОтчеты.ПолучитьГруппировки(КомпоновщикНастроек);
			return null;
		}

		public object ПолучитьСтруктуруТипОбработки(/*ЗначенияНастроек, КомпоновщикНастроек*/)
		{
			//ТипОбработки = Новый Структура;
			if(true/*ЕстьABCКлассификация(КомпоновщикНастроек)*/)
			{
				//ТипОбработки.Вставить("ABCКлассификация", Истина);
			}
			/*// Если используется функция ТОП
*/
			if(true/*ЗначенияНастроек <> Неопределено
		И НЕ ПустаяСтрока(ЗначенияНастроек.АналитическиеОтборы.ПолеТоп) И ЗначенияНастроек.АналитическиеОтборы.КоличествоТоп <> 0*/)
			{
				//ТипОбработки.Вставить("Топ", Истина);
			}
			if(true/*ЗначенияНастроек <> Неопределено
		И ЗначенияНастроек.АналитическиеОтборы.Свойство("РесурсПорог")
		И Не ПустаяСтрока(ЗначенияНастроек.АналитическиеОтборы.РесурсПорог) И Не ПустаяСтрока(ЗначенияНастроек.АналитическиеОтборы.ПолеПорог) И ЗначенияНастроек.АналитическиеОтборы.ПроцентПорог <> 0*/)
			{
				//ТипОбработки.Вставить("Порог", Истина);
			}
			if(true/*ЗначенияНастроек <> Неопределено
		И ЗначенияНастроек.АналитическиеОтборы.СкрытьНулевые = Истина*/)
			{
				//ТипОбработки.Вставить("СкрытьНулевые", Истина);
			}
			return null;
		}

		public object ПолучитьТекстВнешнегоЗапроса(/*Знач ТекстЗапроса, СписокНовыхПолей, ПоляНабораДанных*/)
		{
			if(true/*СписокНовыхПолей.Количество() = 0*/)
			{
			}
			//ПодтекстЗапроса = "";
			//ЕстьРазрешенные = Ложь;
			//Позиция = Найти(ВРег(ТекстЗапроса), "РАЗРЕШЕННЫЕ");
			if(true/*Позиция > 0*/)
			{
				//ТекстПередРазрешенные = Лев(ТекстЗапроса, Позиция - 1);
				//ТекстПослеРазрешенные = Сред(ТекстЗапроса, Позиция + 11);
				if(true/*Найти(ТекстПередРазрешенные, ",") = 0 
			И Найти(ВРег(ТекстПередРазрешенные), "КАК") = 0
			И Найти(ВРег(ТекстПередРазрешенные), "ИЗ") = 0
			И Найти(ТекстПередРазрешенные, """") = 0*/)
				{
					//ТекстЗапроса = ТекстПередРазрешенные + ТекстПослеРазрешенные;
					//ЕстьРазрешенные = Истина;
				}
			}
			//ТекстЗапроса = "ВЫБРАТЬ " + ?(ЕстьРазрешенные, "РАЗРЕШЕННЫЕ ", "") + ПодтекстЗапроса + " * ИЗ ( " + ТекстЗапроса + " ) КАК ТаблицаЗапроса";
			return null;
		}

		public object ПолучитьМакетКомпоновки(/*ОтчетОбъект, СхемаКомпоновкиДанных, КомпоновщикНастроек, ДанныеРасшифровки, ВнешниеНаборыДанных, ВыводВТабличныйДокумент*/)
		{
			//ЗначенияНастроек = ТиповыеОтчеты.ПолучитьЗначенияНастроекПанелиПользователяОбъекта(ОтчетОбъект);
			//ТипОбработки = ПолучитьСтруктуруТипОбработки(ЗначенияНастроек, КомпоновщикНастроек);
			//Дорабатывать = ТипОбработки.Количество() > 0;
			/*// Проверяем, количество наборов данных и их тип. Допустим один - запрос
*/
			if(true/*Дорабатывать И Не ВОбъектеОдинНаборДанных(СхемаКомпоновкиДанных)*/)
			{
				//ТекстСообщения = "Допустим только один набор данных. Дополнительные возможности недоступны.";
				//ОбщегоНазначения.Сообщение(ТекстСообщения,,"Формирование отчета", ОтчетОбъект.Ссылка);
				//Дорабатывать = Ложь;
			}
			/*// Если дорабатывать компоновщик не надо, сразу возвращаем макет компоновки
*/
			if(true/*Не Дорабатывать*/)
			{
				//КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
				if(true/*ВыводВТабличныйДокумент*/)
				{
					//МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, ДанныеРасшифровки);
				}
			}
			/*// Добавляем элементы структуры, чтобы поля попали в выполняемый запрос
*/
			/*//Если ТипОбработки.Свойство("ABCКлассификация") Тогда
*/
			/*//	ДобавитьЭлементСтруктурыДляABCКЛассификации(КомпоновщикНастроек);
*/
			/*//КонецЕсли;
*/
			//КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
			//МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, ДанныеРасшифровки);
			/*// Получаем таблицу результата
*/
			//ТЗ = ПолучитьТаблицуРезультатПоМакетуКомпоновки(МакетКомпоновки.НаборыДанных, МакетКомпоновки.ЗначенияПараметров, ВнешниеНаборыДанных);
			if(true/*ТЗ = Неопределено*/)
			{
			}
			//СписокНовыхПолей = Новый СписокЗначений;
			/*// Отработка ТОП
*/
			if(true/*ТипОбработки.Свойство("Топ")*/)
			{
				//ОтработатьОпциюТоп(ЗначенияНастроек, ТЗ, КомпоновщикНастроек);
			}
			/*// Отработка Порог
*/
			if(true/*ТипОбработки.Свойство("Порог")*/)
			{
				//ОтработатьОпциюПорог(ЗначенияНастроек, ТЗ, КомпоновщикНастроек);
			}
			/*// Отработка скрыть нулевые
*/
			if(true/*ТипОбработки.Свойство("СкрытьНулевые")*/)
			{
				//ОтработатьОпциюСкрытьНулевые(ТЗ, КомпоновщикНастроек, СписокНовыхПолей);
			}
			/*// Добавляем в таблицу результата ABC классификацию
*/
			if(true/*ТипОбработки.Свойство("ABCКлассификация")*/)
			{
				//ДобавитьВТаблицуРезультатаABCКлассификацию(ТЗ, КомпоновщикНастроек, СписокНовыхПолей);
			}
			/*// Формируем внешний набор данных
*/
			//ВнешниеНаборыДанных = Новый Структура;
			//ВнешниеНаборыДанных.Вставить("Результат", ТЗ);
			/*// Добавим в один из наборов новые поля
*/
			/*// Это необходимо для успешной инициализации компоновщика настроек
*/
			//НаборДанныхСКД = СхемаКомпоновкиДанных.НаборыДанных[0];
			if(true/*ТипЗнч(НаборДанныхСКД) = Тип("НаборДанныхОбъединениеСхемыКомпоновкиДанных")*/)
			{
			}
			if(true/*ТипЗнч(НаборДанныхСКД) = Тип("НаборДанныхЗапросСхемыКомпоновкиДанных")*/)
			{
				//НаборДанныхСКД.Запрос = ПолучитьТекстВнешнегоЗапроса(НаборДанныхСКД.Запрос, СписокНовыхПолей, НаборДанныхСКД.Поля);
			}
			/*// Схема компоновки изменилась, переинициализируем компоновщик настроек
*/
			//КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
			/*// Перенастраиваем пользовательские поля для ABC классификации
*/
			//ПеренастроитьПользовательскиеПоляДляABCКлассификации(КомпоновщикНастроек);
			/*// Установим отбор на группировки - не выводить нулевые строки
*/
			if(true/*ТипОбработки.Свойство("СкрытьНулевые")*/)
			{
				//УстановитьОтборНаНулевыеГруппировки(КомпоновщикНастроек);
			}
			//ТиповыеОтчеты.ДобавитьПолеИтога(СхемаКомпоновкиДанных, "СуммаРесурсовПоМодулю");
			/*// Получим Макет компоновки
*/
			//КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
			if(true/*ВыводВТабличныйДокумент*/)
			{
				//МакетКомпоновкиНовый = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, ДанныеРасшифровки);
			}
			/*// Добавляем новый набор данных в макет (схему лучше не изменять)
*/
			//СтарыйНаборДанных = МакетКомпоновкиНовый.НаборыДанных[0];
			//НаборДанныхОбъект = МакетКомпоновкиНовый.НаборыДанных.Добавить(Тип("НаборДанныхОбъектМакетаКомпоновкиДанных"));
			//НаборДанныхОбъект.Имя = СтарыйНаборДанных.Имя;
			//НаборДанныхОбъект.ИсточникДанных = СхемаКомпоновкиДанных.ИсточникиДанных[0].Имя;
			//НаборДанныхОбъект.ИмяОбъекта = "Результат";
			//МакетКомпоновкиНовый.НаборыДанных.Удалить(СтарыйНаборДанных);
			return null;
		}
		//ПолучитьМакетКомпоновки()
		// Возвращает картинку, обозначающую соответствующий индикатор

		public object ПолучитьКартинкуИндикатора(/*Значение*/)
		{
			if(true/*Значение = "1Тренд"*/)
			{
			}
			return null;
		}
		// По массиву полей расшифровки открывает экземпляр отчета
	}
}
